package com.flyiu.data.idempotent;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import com.flyiu.data.idempotent.handler.DefaultIempotentHandler;
import com.flyiu.data.idempotent.handler.IdempotentHandler;

/** 
* @author 作者 E-mail: 
* @version 创建时间：2017年10月12日 下午2:26:04 
* 类说明 
*/
@Configuration
@ComponentScan
public class IdempotentConfig {
    
    private Logger LOG = LoggerFactory.getLogger(IdempotentConfig.class);

//    @ConditionalOnMissingBean(value = IdempotentHandler.class)
//    @Bean
//    public IdempotentHandler check() {
//        throw new IllegalArgumentException("IdempotentHandler 未设置,必须继承并实现bean。");
//    }
    
    @ConditionalOnMissingBean(value = IdempotentHandler.class)
    @Bean
    public DefaultIempotentHandler defaultIempotentHandler() {
        LOG.warn("没有找到 IdempotentHandler 的实现类，将使用DefaultIempotentHandler进行测试");
        return new DefaultIempotentHandler();
    }
}
